1 research outputs found
Correctness Witness Validation by Abstract Interpretation
Witnesses record automated program analysis results and make them
exchangeable. To validate correctness witnesses through abstract
interpretation, we introduce a novel abstract operation unassume. This operator
incorporates witness invariants into the abstract program state. Given suitable
invariants, the unassume operation can accelerate fixpoint convergence and
yield more precise results. We demonstrate the feasibility of this approach by
augmenting an abstract interpreter with unassume operators and evaluating the
impact of incorporating witnesses on performance and precision. Using manually
crafted witnesses, we can confirm verification results for multi-threaded
programs with a reduction in effort ranging from 7% to 47% in CPU time. More
intriguingly, we discover that using witnesses from model checkers can guide
our analyzer to verify program properties that it could not verify on its own.Comment: 29 pages, 4 figures, 2 tables, extended version of the paper which is
to appear at VMCAI 202